import request from "./request";
import sha1 from "sha1";

export async function fwx() {
  if (!isWx()) {
    return;
  }
  try {
    const url = "weixin/api/ticket";
    const res = await request.get(url);

    const { ticket, nonceStr } = res;
    // g_ticket =ticket
    const timestamp = Math.round(new Date().getTime() / 1000).toString();
    const shaStr =
      "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "&timestamp=" + timestamp + "&url=" + location.href;
    console.log("shaStr-->", shaStr);
    const signature = sha1(shaStr);
    wx.config({
      ...res,
      signature,
      timestamp,
      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
      // appId, // 必填，公众号的唯一标识
      // timestamp: Date.now() , // 必填，生成签名的时间戳
      // nonceStr: '' + Math.random() * 1000, // 必填，生成签名的随机串
      // signature: res.data,// 必填，签名
      jsApiList: [
        "onMenuShareTimeline",
        "onMenuShareAppMessage",
        "updateAppMessageShareData",
        "updateTimelineShareData",
      ], // 必填，需要使用的JS接口列表
    });

    // sdk 权限验证配置成功回调
    wx.ready(function () {
      console.log("wx.ready success");
      const imgUrl = document.querySelector("#share-img")?.innerHTML;
      const title = document.title;
      const link = location.href;
      const desc = document.querySelector("#fu-title")?.innerHTML;
      console.log("desc--->", desc);
      // 朋友圈分享功能
      wx.updateTimelineShareData({
        // 配置自定义参数
        title, // 分享标题
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        success: function () {
          // 设置成功
          console.log("设置朋友圈分享成功");
        },
      });
      wx.onMenuShareTimeline({
        title, // 分享标题
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        success: function () {},
      });
      // 朋友分享功能
      wx.updateAppMessageShareData({
        // 配置自定义参数
        title, // 分享标题
        desc: desc, // 分享描述
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        success: function () {
          // 设置成功
          // 设置成功

          console.log("朋友分享设置成功");
        },
      });
      // 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口（即将废弃）
      wx.onMenuShareAppMessage({
        title, // 分享标题
        desc: desc, // 分享描述
        link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        imgUrl, // 分享图标
        type: "link", // 分享类型,music、video或link，不填默认为link
        dataUrl: "", // 如果type是music或video，则要提供数据链接，默认为空
        success: function () {
          // 用户点击了分享后执行的回调函数
          console.log("分享成功");
        },
      });

      return Promise.resolve();
    });
    // sdk 权限验证配置失败回调
    wx.error(function (res) {
      console.log("wx.error", res);
      return Promise.reject();
    });

    return Promise.resolve();
  } catch (err) {
    console.log("-->", err);
    console.log("wx接口请求出现错误");
    return Promise.reject();
  }
}

function isWx() {
  if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
    //判断是否是移动设备打开。browser代码在下面
    let ua = navigator.userAgent.toLowerCase(); //获取判断用的对象
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
      return true;
    } else {
      return false;
    }
  } else {
    return false;
  }
}
